This section describes changes from the 1.0 version of MacFIBS.

Although the external appearance and behavior of MacFIBS is almost identical to version 1.0, I chose to call this version 2.0 because underneath nearly everything is new. MacFIBS 2.0 is written in C++, compiled with the Metrowerks C++ compiler (version 1.2.1) and uses the THINK Class Library (TCL) version 2.0.4. By contrast, version 1.0 was written in THINK C with objects (a language similar to, but different than C++), compiled with the Symantec THINK C compiler, and used TCL 1.1.

If you don’t know what any of this technobabble means, don’t worry. All you need to know is that this version works very much like version 1.0, with a few minor changes and several new features.

Window positions
In version 2.0, MacFIBS will automatically save the current window positions and sizes. This enhancement was by far the most frequently requested.

Windows stay open
MacFIBS will not close the windows when you disconnect, as it did in version 1.0. If you re–connect, the text from your first session will still be in the Terminal window.

Smarter checker dragging
The second most requested feature is to be able to take more than one move by dragging the checker. In this version, you may take both (or up to all four with doubles) moves at once. For example, with an opening 6-5 you can take one of your back men all the way to your middle point with one motion.

New message parser
The biggest change to MacFIBS is one that, if done right, is completely invisible. If done wrong, you’ll notice different behavior from 1.0.

The message parser is the section of MacFIBS that interprets text sent by FIBS (which I call “FIBS English”). These range from simple “Guinevere logs in.” messages to kibitz messages to the logon message about saving whales. In all, MacFIBS interprets about 110 different messages from FIBS; the parser is by far the largest, most complex part of the program.

The parser code in 1.0 was the cause of performance problems with some players, particularly affecting those with slower Macs. There were several known areas of inefficiencies in my original design, so I decided to tackle the issue head on and fix it.

If you find problems with the way MacFIBS 2.0 is handling messages, please let me know. The changes to the parser were very significant, and it is possible that I missed something in the process of changing over.

Balloon help
I added balloon help for the menu commands. There is no balloon help for the contents of windows yet.

Terminal window enhancements
The Terminal window now has two new menu items: Show “board:…” Messages, and Show Chat Messages. These two commands are toggles that control what is displayed in the Terminal window. With both selected, the Terminal window displays everything, just as it did in version 1.0. Disabling either of these two settings will prevent the board:... messages or any Chat messages (shout, say, kibitz, etc.) from displaying in the Terminal window. Of course, these messages are still displayed by the Board and Chat windows.

Player window enhancements
The Player menu (which appears when the player window is active) contains several new commands.

The 'Blind' command corresponds to a new feature by the same name in FIBS. When toggled on for a player, that player cannot watch your matches. It is similar to the revised 'Gag' command described in the next section.

The 'Clear & Refresh' command is similar to the 'Refresh List' command, but 'Clear & Refresh' deletes all players from the player list prior to refreshing. You should use this command in particular if you do not have the Notify command toggled in the Settings menu. One drawback to this command is that any players that you had set gag or blind flags for will not display properly in the list, although they will still be gagged or blinded (FIBS is a pretty violent game, isn’t it?)

If the 'Update New Logins' command is toggled, MacFIBS will automatically issue 'who <player>' commands in response to every “<player> logs in.” message. If the Notify command is also toggled this will keep the player list up to date, greatly reducing the need to periodically update the player list with 'Refresh List' or 'Clear & Refresh'.

The Player window also now displays a new column to show players’ experience ratings. MacFIBS uses the new 'rawwho' command for all player information, which is slightly more efficient than 'who'.

Gag command changed
Since version 1.0 of MacFIBS was released, a new FIBS command called 'gag' was added by Andreas. This version of MacFIBS uses the new FIBS gag command, rather than internally suppressing messages from specific users. The main difference is that now when you gag a player, that information is not stored in the MacFIBS Player file. The next time you start MacFIBS, you will have to reissue gag commands on any players you don't wish to hear from again. The advantage of this change is that shout messages from those people won’t be sent from FIBS, reducing the wasted bandwidth and making the FIBS server a bit more efficient.

Announcement window eliminated
I removed the Announcements window. I never used it, and whenever I ask other MacFIBS players, apparently no one else does either. It seemed like a good idea when I first made it, but in most cases there is not enough room on the screen to make use of it.

If you absolutely can’t live without it, drop me a note. With the two changes described above under Terminal window enhancements, I think you’ll find that you won’t need this window anymore.